Selenium提供利用瀏覽器對Web進行操作測試,
本篇利用Python來控制Chrome瀏覽器的操作。
首先當然是必須已安裝好Chrome瀏覽器啦~
接者,到下面的網頁下載ChromeDriver (筆者目前的版本為2.22)
https://sites.google.com/a/chromium.org/chromedriver/downloads
(記得要選取您的作業系統的對應版本唷)
下載完畢之後進行解壓縮,會有chromedriver.exe的執行檔,
可以點擊開啟,呈現畫面如下:
接下來,把此檔案放到C槽的目錄之下,並要記得此檔案路徑,
筆者是在C槽之下開了一名為selenium_driver_chrome的資料夾,
把此檔案放在C:\selenium_driver_chrome\chromedriver.exe
接下來就可以來利用Python操作瀏覽器啦~
程式碼如下
第8行的chrome_path是存進chromedriver.exe所存放的目錄。
本篇以進入中央氣象局網站為例,
進入網站後,會進行瀏覽器位置、視窗大小的調整(第12,13行),
瀏覽器移動到左上角,並且視窗大小為700x700的正方形
第14行為請程式等待5秒再繼續進行,
第16行是點擊「天氣預報」的連結,接者等待5秒之後關閉瀏覽器。
第16行,webdriver有許多方法,
本篇使用的是find_element_by_link_text(),還有許多方法如下:
find_element_by_name()
find_element_by_id()
find_element_by_tag_name()
find_element_by_partial_link_text()
find_element_by_css_selector()
用法可以參考SeleniumHQ,http://www.seleniumhq.org/docs/03_webdriver.jsp
2018/11/02 更新
有讀者反應程式無法自動點擊,
筆者實測上述版本Chrome Driver 2.22版確實無法自動點擊,且也無法自動調整視窗大小,
應為使用Chrome瀏覽器不同版本的問題,沒有記錄到當時程式可正常運作的瀏覽器版本。
ChromeDriver 2.22版,建議使用Chrome瀏覽器51版以上。
目前最新ChromeDriver為2.43版,支援Chrome瀏覽器69版以上。
目前測試可正常執行之環境為:
Chrome Driver 2.43版,Chrome瀏覽器69版,Python 3.5.1版
使用上述環境執行時,瀏覽器上還會出現「Chrome目前受到自動測試軟體控制」的提示字樣 =)
參考:
YouTube影片:How to Web Scrape with Python (Selenium/ChromeDriver),https://www.youtube.com/watch?v=bhYulVzYRng
Python的Documentation (16.3. time — Time access and conversions),https://docs.python.org/3.5/library/time.html
Stackoverflow,http://stackoverflow.com/questions/14090369/how-find-element-by-tag-name-and-find-elements-by-tag-name-differs
請不吝指教 =)
留言列表